<template>
  <div id="pieMain" style="width: 30vw; height: 55vh;"></div>
</template>

<script>
import * as echarts from 'echarts';
export default {
  name: "Pie",
  props:["PieData"],
  data() {
    return { data: this.PieData };
  },
  created() {
    console.log(this.PieData)
  },
  mounted() {
    this.renderEcharts();
  },
  methods:{
    renderEcharts() {
      if (!document.getElementById("pieMain")) {
        return;
      }
      const chartDom = document.getElementById("pieMain");
      const myChart = echarts.init(chartDom);
      let option;

      option = {
        backgroundColor: '#a9afb1',
        title: {
          text: 'Customized Pie',
          left: 'center',
          top: 20,
          textStyle: {
            color: '#ccc'
          }
        },
        tooltip: {
          trigger: 'item'
        },
        visualMap: {
          show: false,
          min: 80,
          max: 600,
          inRange: {
            colorLightness: [0, 1]
          }
        },
        series: [
          {
            name: 'Access From',
            type: 'pie',
            radius: '55%',
            center: ['50%', '50%'],
            data: [
              { value: 335, name: 'Direct' },
              { value: 310, name: 'Email' },
              { value: 274, name: 'Union Ads' },
              { value: 235, name: 'Video Ads' },
              { value: 400, name: 'Search Engine' }
            ].sort(function (a, b) {
              return a.value - b.value;
            }),
            roseType: 'radius',
            label: {
              color: 'rgba(255, 255, 255, 0.3)'
            },
            labelLine: {
              lineStyle: {
                color: 'rgba(255, 255, 255, 0.3)'
              },
              smooth: 0.2,
              length: 10,
              length2: 20
            },
            itemStyle: {
              color: '#c23531',
              shadowBlur: 200,
              shadowColor: 'rgba(0, 0, 0, 0.5)'
            },
            animationType: 'scale',
            animationEasing: 'elasticOut',
            animationDelay: function (idx) {
              return Math.random() * 200;
            }
          }
        ]
      };

      option && myChart.setOption(option);
    },
  }
}
</script>

<style scoped>

</style>
